From 5c2f642ddde4f4f947c10c9b11448408910a2f76 Mon Sep 17 00:00:00 2001 From: Daniel Boles Date: Fri, 10 Mar 2017 20:37:27 +0000 Subject: [PATCH] =?utf8?q?ScrolledWindow:=20Don=E2=80=99t=20check=20if=20c?= =?utf8?q?hild=20is=20Scrollable?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If the child added is not a Scrollable, it gets wrapped in a ViewPort – which is. So it is impossible to end up with a non-Scrollable child. Just check we have /any/ child where needed, which is semantically nicer https://bugzilla.gnome.org/show_bug.cgi?id=778853 --- gtk/gtkscrolledwindow.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index fef3da25ea..255c776f97 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1445,12 +1445,13 @@ gtk_scrolled_window_allocate (GtkCssGadget *gadget, gboolean previous_hvis; gboolean previous_vvis; guint count = 0; + GtkScrollable *scrollable_child = GTK_SCROLLABLE (child); - hscroll_policy = GTK_IS_SCROLLABLE (child) - ? gtk_scrollable_get_hscroll_policy (GTK_SCROLLABLE (child)) + hscroll_policy = scrollable_child != NULL + ? gtk_scrollable_get_hscroll_policy (scrollable_child) : GTK_SCROLL_MINIMUM; - vscroll_policy = GTK_IS_SCROLLABLE (child) - ? gtk_scrollable_get_vscroll_policy (GTK_SCROLLABLE (child)) + vscroll_policy = scrollable_child != NULL + ? gtk_scrollable_get_vscroll_policy (scrollable_child) : GTK_SCROLL_MINIMUM; /* Determine scrollbar visibility first via hfw apis */ @@ -1713,7 +1714,7 @@ gtk_scrolled_window_measure (GtkCssGadget *gadget, child = gtk_bin_get_child (bin); - if (GTK_IS_SCROLLABLE (child)) + if (child) gtk_scrollable_get_border (GTK_SCROLLABLE (child), &sborder); /* @@ -2159,7 +2160,7 @@ gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window, gtk_scrolled_window_adjustment_value_changed (hadjustment, scrolled_window); child = gtk_bin_get_child (bin); - if (GTK_IS_SCROLLABLE (child)) + if (child) gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (child), hadjustment); if (gtk_widget_should_animate (GTK_WIDGET (scrolled_window))) @@ -2226,7 +2227,7 @@ gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window, gtk_scrolled_window_adjustment_value_changed (vadjustment, scrolled_window); child = gtk_bin_get_child (bin); - if (GTK_IS_SCROLLABLE (child)) + if (child) gtk_scrollable_set_vadjustment (GTK_SCROLLABLE (child), vadjustment); if (gtk_widget_should_animate (GTK_WIDGET (scrolled_window))) @@ -2837,8 +2838,7 @@ gtk_scrolled_window_inner_allocation (GtkWidget *widget, gtk_scrolled_window_relative_allocation (widget, rect); child = gtk_bin_get_child (GTK_BIN (widget)); - if (GTK_IS_SCROLLABLE (child) && - gtk_scrollable_get_border (GTK_SCROLLABLE (child), &border)) + if (child && gtk_scrollable_get_border (GTK_SCROLLABLE (child), &border)) { rect->x += border.left; rect->y += border.top; -- 2.30.2